package main

import (
	"designMode/lession14/domain"
	"time"
)

func main()  {

	// 客户端部分
	// 在mongodb中存
	storage := domain.NewMongodbCredentialStorage()
	domain.InitMongoDB()
	AppId:="666"
	Password:="123456"
	data:=domain.Auth{
		AppId: AppId,
		Password: Password,
	}
	storage.InsertOne(&data)

	// 获取当前时间戳
	creatimestap := time.Now().Unix()
	baseUrl:="http://www.baidu.com"
	params:=make(map[string]string)
	params["appId"]=AppId
	params["password"]=Password

	// 生成token
	authToken := domain.Create(baseUrl, creatimestap, params)


	// 拼接到url
	apiRequest := domain.NewApiRequest(baseUrl, AppId, authToken.GetToken(), creatimestap)

	url := apiRequest.CreateURL()  // 生成完整的url

	// 休眠  模拟token过期时间
	time.Sleep(time.Duration(10)*time.Second)
	// 服务端部分
	authencator := domain.NewApiAuthencator(storage)
	authencator.AuthByUrl(url)

}

